package demo01;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: YKH
 * Date: 2022-03-29
 * Time: 22:45
 */
public class Test02 {
    private int a = 10;
    private int b =20;
    private static int c =30;
    public Test02() {

    }
    public int add() {
        return a+b;
    }
    /**
     二、静态内部类
     1.如何创建静态内部类的对象  （不需要外部类对象）
     //外部类名.内部类名 变量 = new 外部类名.Person()
     Test02.Person person = new Test02.Person();

     2.静态内部类中，只能访问外部类的静态成员
       那如何访问 非静态的成员呢？
         在静态内部类中实例化一个外部类对象便可以访问
     */

    public static void main(String[] args) {
        //1.实例化静态内部类对象，不需要外部类对象
        //外部类名.内部类名 变量 = new 外部类名.Person()
        Test02.Person person = new Test02.Person( new Test02());



    }
    //静态内部类
    static class Person {
        int a = 1;
        int b = 2;

        public int add() {
            return a+b;
        }
        Test02 out;
        public Person(Test02 out) {
            this.out = out;
        }
        public void test() {
            //直接访问外部类中静态变量
            System.out.println(c);
            //创建外部类对象，访问外部类中 非静态变量
            Test02 test02 = new Test02();
            System.out.println(test02.a);
        }
    }
}
